package top.jiangqiang.qianyi.common.crypto;

/**
 * 业务使用的加密服务
 *
 * @Date 2024/6/7 上午11:04
 * @Author Jiangqiang
 */
public interface EncryptService {

    /**
     * 数据库加密
     *
     * @param rawText
     * @return
     */
    String dbEncrypt(String rawText);

    /**
     * 数据库解密
     *
     * @param encodedText
     * @return
     */
    String dbDecrypt(String encodedText);

    /**
     * 密码加密
     *
     * @param rawText
     * @return
     */
    String passwordEncrypt(String rawText);

    /**
     * 密码匹配
     *
     * @param rawPassword     明文
     * @param encodedPassword 密文，不加密时是明文
     * @return
     */
    boolean matches(CharSequence rawPassword, String encodedPassword);

    /**
     * 传输加密，后端加密返回给前端
     *
     * @param rawText
     * @return
     */

    String httpEncrypt(String rawText);

    /**
     * 传输解密，前端加密返回给后端
     *
     * @param encodedText
     * @return
     */
    String httpDecrypt(String encodedText);

    /**
     * 模拟前端加密
     *
     * @return
     */
    String frontEndEncrypt(String data);

    /**
     * 模拟前端解密
     *
     * @return
     */
    String frontEndDecrypt(String data);
}
